package cn.sccdlg.lambda.demo02;

/**
 * @author RaoShuang
 * @emil 991207823@qq.com
 * @date 2020/6/5 00:09
 * 用户身份认证标记接口（只有唯一的抽象方法的接口叫函数式编程接口，
 * 注解标记为：@FunctionalInterface）
 */
@FunctionalInterface
public interface IUserCredential {
    /**
     *通过用户账号，检证用户身份信息的接口
     * @param username 要验证的用户账号
     *@return 返回身份信息[系统管理员、用户管理员、普通用门
     */
    String verifyUser (String username);

    /**
     * 默认方法，对于所有实现类实现相同逻辑的接口定义
     * @param username
     * @return
     */
    default String getCredential(String username) {
        // 模拟方法
        if ("admin".equals(username)) {
            return "admin + 系统管理员用户";
        } else if("manager".equals(username)){
            return "manager + 用户管理员用户";
        } else {
            return "commons + 普通会员用户";
        }
    }
}
